/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package construtora.limiar.dao;

import construtora.limiar.dao.generic.AbstractDAO;
import construtora.limiar.dao.generic.DAOEngine;
import construtora.limiar.dao.generic.IDAO;
import construtora.limiar.models.TelefoneCliente;
import construtora.limiar.models.generic.IModel;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author michel
 */
public class TelefoneClienteDAO extends AbstractDAO implements IDAO {

    public TelefoneClienteDAO() {
        this.table = "telefone_cliente";
    }

    /*
    @Override
    public String getDefaultWhere(IModel model) {
        return "id_cliente = " + ((TelefoneCliente) model).getCliente().getId()
                + " and id_telefone = "
                + ((TelefoneCliente) model).getTelefone().getId();
    }

    
    @Override
    public String[][] getFields(IModel model) {
        TelefoneCliente telefoneCliente = (TelefoneCliente) model;
        String[][] fields = new String[2][2];
        fields[0][0] = "id_telefone";
        fields[0][1] = telefoneCliente.getTelefone().getId().toString();
        fields[1][0] = "id_cliente";
        fields[1][1] = telefoneCliente.getCliente().getId().toString();
        return fields;

    }

    @Override
    public IModel fetchOne(IModel model) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    @Override
    public List<? extends IModel> fetchAll(String where, String order, Integer limit, Integer offset) {
        List<TelefoneCliente> list = new ArrayList<TelefoneCliente>();
        ResultSet rs = DAOEngine.fetchAll(this.table, where, order, limit, offset);
        try {
            while (rs.next()) {
                TelefoneCliente telefoneCliente = new TelefoneCliente();
                Cliente cliente = new Cliente();
                cliente.setId(rs.getInt("id_cliente"));
                cliente = (Cliente) new ClienteDAO().fetchOne(cliente);
                telefoneCliente.setCliente(cliente);
                Telefone telefone = new Telefone();
                telefone.setId(rs.getInt("id_telefone"));
                telefone = (Telefone) new TelefoneDAO().fetchOne(telefone);
                telefoneCliente.setTelefone(telefone);
                list.add(telefoneCliente);
            }
            return list;
        }catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    */

    @Override
    public List<? extends IModel> fetchAll(String where, String order, Integer limit, Integer offset) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String[][] getFields(IModel model) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public IModel fetchOne(IModel model) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
